package cn.han.generic;

import java.util.ArrayList;

//本类用于泛型的入门案例
public class TestGeneric1 {
    public static void main(String[] args) {
        /*1.泛型是怎么来的?想要模拟数组的数据检查*/
        String[] s = new String[5];//创建一个String类型的数组，长度为5
        s[0] = "涛涛";
        s[1] = "波波";
        s[2] = "泡泡";
        //数组的好处：编译的时候就检查数据的类型，只要与数组的类型不匹配，就报错
        //如果集合不加泛型，集合中的元素类型根本没有约束，自由
        ArrayList list = new ArrayList();
        list.add("霞霞");
        list.add(666);
        list.add(3.14);
        list.add(0,"paopao");
        System.out.println(list);
        //在集合中引入泛型的概念，泛型通常与集合一起使用
        //这样就可以利用泛型约束集合中元素的类型
        // 除此之外可以把报错的时机提前：只要元素的类型不匹配，在编译器就报错
        //而不是运行代码时才报错，向集合中添加元素时，也会自动执行类型检查
        ArrayList<String> list2 = new ArrayList();
        list2.add("paopao");
        /*<type>--需要根据集合中存入的元素类型做决定，但是必须是引用类型，不能是基本类型
        * 泛型不能用基本类型*/
        ArrayList<Integer> list1 =new ArrayList();
        list1.add(100);
        list1.add(200);
        list1.add(300);
        System.out.println(list1);


    }
}
